package com.aaa.mbs.service;

import com.aaa.common.util.Result;
import com.aaa.mbs.entity.AccountStatement;

import java.util.List;

/**
 * (AccountStatement)表服务接口
 *
 * @author makejava
 * @since 2020-12-05 14:29:31
 */
public interface AccountStatementService {

    /**
     *  流水表中的金额 Amount充值到客户表的Account——Balance字段中
     * @param accountStatement
     * @return
     */
    Result addToBalance(AccountStatement accountStatement);

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    AccountStatement queryById(Integer id);

    /**
     * 通过客户id查询相关明细信息
     * @param clientId
     * @return
     */
    Result selectByClientId(Integer clientId);


    /**
     * 通过实体作为筛选条件查询
     *
     * @param accountStatement 实例对象
     * @return 对象列表
     */
    Result queryAll(int pageNo, int pageSize, AccountStatement accountStatement);

    /**
     * 查询所有
     * @param accountStatement
     * @return
     */
    List<AccountStatement> selectAll(AccountStatement accountStatement);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<AccountStatement> queryAllByLimit(int offset, int limit);

    /**
     * 新增数据
     *
     * @param accountStatement 实例对象
     * @return 实例对象
     */
    int insert(AccountStatement accountStatement);

    /**
     * 修改数据
     *
     * @param accountStatement 实例对象
     * @return 实例对象
     */
    AccountStatement update(AccountStatement accountStatement);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

    /**
     * 收入记录统计
     * @param yearMonth
     * @return
     */
    Result  incomeRecordTotal(String yearMonth);

}